package dbModel

import (
	"time"

	"gorm.io/gorm"
)

//Model 公共结构体
type Model struct {
	ID        uint           `gorm:"primaryKey" json:"id"`                   //主键
	CreatedAt time.Time      `gorm:"autoCreateTime" json:"createAt"`         //创建时间
	UpdatedAt time.Time      `gorm:"autoUpdateTime" json:"updatedAt"`        //更新时间
	DeletedAt gorm.DeletedAt `gorm:"index" json:"deletedAt"`                 //删除时间
	Status    uint8          `gorm:"not null;index;default:1" json:"status"` //1正常 0删除 2删除
}

//User 用户表
type User struct {
	Name     string     `gorm:"not null" json:"name"`                            // 用户名称
	Account  string     `gorm:"not null;index;uniqueIndex:unq_u" json:"account"` //用户名
	Password string     `gorm:"not null" json:"password"`                        //用户密码
	Mobile   string     `gorm:"not null;index;uniqueIndex:unq_u" json:"mobile"`  //手机号码
	LastTime *time.Time `json:"last_time"`                                       //上次登录时间
	LastIp   string     `json:"lastIp"`
	Model
}

//Team 团队表
type Team struct {
	Name   string `gorm:"not null"`                  // 团队名称
	UID    uint   `gorm:"not null;column:uid;index"` //创建用户id
	Remark string // 团队备注
	Model
}

//TeamRelation 团队用户关系表
type TeamRelation struct {
	TID uint `gorm:"not null;column:tid;index;uniqueIndex:unq_TR"` //创建团队id
	UID uint `gorm:"not null;column:uid;index;uniqueIndex:unq_TR"` //创建用户id
	Model
}

//Application 应用表
type Application struct {
	Name           string `gorm:"not null"`                     // 应用名称
	AppType        uint8  `gorm:"not null;default:1"`           //1 web 2 小程序
	TID            uint   `gorm:"column:tid;index"`             //创建团队id
	UID            uint   `gorm:"column:uid;index;not null"`    //创建用户id
	APPKEY         string `gorm:"column:appkey;index;not null"` //appkey 上报key
	Describe       string // 应用描述
	Polymerization bool   `gorm:"not null;default:true"` //url聚合
	Model
}
